package monitor;

/**
 * Interface definition: Monitor.
 * 
 * @author OpenORB Compiler
 */
public interface MonitorOperations
{
    /**
     * Ring wird als String-Array uebergeben.
     * In dem Array sind die IDs der beteiligten Prozesse anzugeben.
     * Die Ids sollen sich zusammensetzen aus dem Namen des Starters 
     * und einer vom Starter vergebenen fortlaufenden Nummer.
     */
    public void ring(String[] prozessIds);

    /**
     * Zahlen werden in einem Integer-Array uebergeben.
     * Laenge des Startzahlen-Arrays muss mit der Laenge des Prozessids-Arrays uebereinstimmen.
     */
    public void startzahlen(int[] startzahlen);

    /**
     * Mitteilung soll auch gesendet werden, wenn die Zahl vom Prozess nicht bearbeitet wurde, 
     * weil sie zu gross war.
     * Parameter enthalten die Angaben, welcher Prozess die Zahl empfangen hat, von welchem
     * Prozess sie gesendet wurde und welche Zahl uebertragen wurde.
     */
    public void rechnen(String prozessId, String prozessIdAbsender, int num);

    /**
     * Parameter enthalten die Angaben, welcher Prozess die Anfrage empfangen hat, von wem sie
     * urspruenglich gesendet wurde und ob terminiert werden soll.
     */
    public void terminieren(String prozessId, String prozessIdAbsender, boolean terminiere);

    /**
     * Monitor uebergeben.
     */
    public void ergebnis(String prozessId, int num);

}
